@@ -6,9 +6,9 @@ from django_models_ext import BaseModelMixin, upload_file_path, upload_file_url, |
||
6 | 6 |
from jsonfield import JSONField |
7 | 7 |
from shortuuidfield import ShortUUIDField |
8 | 8 |
from TimeConvert import TimeConvert as tc |
9 |
-from simditor.fields import RichTextField |
|
10 | 9 |
|
11 | 10 |
from account.models import UserInfo |
11 |
+from simditor.fields import RichTextField |
|
12 | 12 |
|
13 | 13 |
|
14 | 14 |
class GoodsInfo(BaseModelMixin): |
@@ -67,6 +67,7 @@ class PackInfo(BaseModelMixin): |
||
67 | 67 |
'pack_detail': self.pack_detail, |
68 | 68 |
} |
69 | 69 |
|
70 |
+ |
|
70 | 71 |
class PackGoodsInfo(BaseModelMixin): |
71 | 72 |
pack_id = models.CharField(_('pack_id'), max_length=32, blank=True, null=True, help_text='包唯一标识', db_index=True) |
72 | 73 |
good_id = models.CharField(_('good_id'), max_length=32, blank=True, null=True, help_text='商品唯一标识', db_index=True) |
@@ -1,10 +1,12 @@ |
||
1 |
-from django.contrib import admin |
|
1 |
+# -*- coding: utf-8 -*- |
|
2 | 2 |
|
3 |
+from django.contrib import admin |
|
3 | 4 |
|
4 |
-# Register your models here. |
|
5 | 5 |
from pay.models import OrderInfo |
6 | 6 |
|
7 |
+ |
|
7 | 8 |
class OrderInfoAdmin(admin.ModelAdmin): |
8 | 9 |
list_display = ('kol_id', 'pack_id', 'goods_info', 'user_id', 'total_fee', 'name', 'phone', 'address', 'tracking_number', 'pay_status') |
9 | 10 |
|
11 |
+ |
|
10 | 12 |
admin.site.register(OrderInfo, OrderInfoAdmin) |
@@ -3,9 +3,9 @@ |
||
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 | 5 |
from django_models_ext import BaseModelMixin |
6 |
-from shortuuidfield import ShortUUIDField |
|
7 | 6 |
from jsonfield import JSONField |
8 |
-from TimeConvert import TimeConvert as tc |
|
7 |
+from shortuuidfield import ShortUUIDField |
|
8 |
+ |
|
9 | 9 |
|
10 | 10 |
class OrderInfo(BaseModelMixin): |
11 | 11 |
|
@@ -71,4 +71,4 @@ class OrderInfo(BaseModelMixin): |
||
71 | 71 |
verbose_name_plural = _(u'订单信息') |
72 | 72 |
|
73 | 73 |
def __unicode__(self): |
74 |
- return u'{0.pk}'.format(self) |
|
74 |
+ return self.pk |
@@ -1,5 +1,8 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import json |
|
4 |
+from functools import reduce |
|
5 |
+ |
|
3 | 6 |
from django.conf import settings |
4 | 7 |
from django.db import transaction |
5 | 8 |
from django.shortcuts import HttpResponse |
@@ -9,17 +12,13 @@ from pywe_exception import WeChatPayException |
||
9 | 12 |
from pywe_pay import WeChatPay |
10 | 13 |
from pywe_pay_notify import check_pay_notify |
11 | 14 |
from pywe_response import WXPAY_NOTIFY_FAIL, WXPAY_NOTIFY_SUCCESS |
12 |
-from pywe_sign import check_signature |
|
13 | 15 |
from TimeConvert import TimeConvert as tc |
14 |
-import json |
|
15 |
-from functools import reduce |
|
16 | 16 |
|
17 | 17 |
from account.models import UserInfo |
18 |
-from goods.models import PackInfo, PackGoodsInfo, GoodsInfo |
|
18 |
+from goods.models import PackGoodsInfo, PackInfo |
|
19 | 19 |
from kol.models import KOLInfo |
20 | 20 |
from pay.models import OrderInfo |
21 |
-from utils.error.errno_utils import (PackStatusCode, KOLStatusCode, PackGoodsStatusCode, OrderStatusCode, UserStatusCode, |
|
22 |
- WithdrawStatusCode) |
|
21 |
+from utils.error.errno_utils import KOLStatusCode, OrderStatusCode, PackGoodsStatusCode, PackStatusCode, UserStatusCode |
|
23 | 22 |
|
24 | 23 |
|
25 | 24 |
WECHAT = settings.WECHAT |
@@ -49,7 +48,7 @@ def wx_order_create_api(request): |
||
49 | 48 |
kol = KOLInfo.objects.get(kol_id=kol_id, status=True) |
50 | 49 |
except KOLInfo.DoesNotExist: |
51 | 50 |
return response(KOLStatusCode.KOL_NOT_FOUND) |
52 |
- |
|
51 |
+ |
|
53 | 52 |
# 包校验 |
54 | 53 |
try: |
55 | 54 |
pack = PackInfo.objects.get(kol_id=kol_id, pack_id=pack_id, status=True) |
@@ -59,7 +58,7 @@ def wx_order_create_api(request): |
||
59 | 58 |
body = request.POST.get('body', '') # 商品描述 |
60 | 59 |
total_fee = int(request.POST.get('total_fee', 0)) # 总金额,单位分 |
61 | 60 |
|
62 |
- #包-商品校验 |
|
61 |
+ # 包-商品校验 |
|
63 | 62 |
for g in goods_info: |
64 | 63 |
try: |
65 | 64 |
PackGoodsInfo.objects.get(pack_id=pack_id, good_id=g.get('good_id', '')) |
@@ -124,7 +123,7 @@ def wx_order_create_api(request): |
||
124 | 123 |
def order_paid_success(order): |
125 | 124 |
if order.pay_status == OrderInfo.PAID: |
126 | 125 |
return |
127 |
- |
|
126 |
+ |
|
128 | 127 |
order.pay_status = OrderInfo.PAID |
129 | 128 |
order.paid_at = tc.utc_datetime() |
130 | 129 |
order.save() |
@@ -137,6 +136,7 @@ def order_paid_fail(order): |
||
137 | 136 |
order.pay_status = OrderInfo.FAIL |
138 | 137 |
order.save() |
139 | 138 |
|
139 |
+ |
|
140 | 140 |
@logit |
141 | 141 |
@transaction.atomic |
142 | 142 |
def wx_notify_url_api(request): |
@@ -9,6 +9,7 @@ from django.core.files.uploadedfile import InMemoryUploadedFile |
||
9 | 9 |
|
10 | 10 |
from simditor import utils |
11 | 11 |
|
12 |
+ |
|
12 | 13 |
try: |
13 | 14 |
from PIL import Image, ImageOps |
14 | 15 |
except ImportError: |
@@ -2,13 +2,13 @@ |
||
2 | 2 |
from __future__ import absolute_import |
3 | 3 |
|
4 | 4 |
import django |
5 |
- |
|
6 | 5 |
from django.conf import settings |
7 |
-from django.conf.urls import url, static |
|
6 |
+from django.conf.urls import static, url |
|
8 | 7 |
from django.contrib.admin.views.decorators import staff_member_required |
9 | 8 |
|
10 | 9 |
from . import views |
11 | 10 |
|
11 |
+ |
|
12 | 12 |
if django.VERSION >= (2, 0): |
13 | 13 |
# pylint disable=C0103 |
14 | 14 |
from django.urls import path |
@@ -3,7 +3,6 @@ from __future__ import absolute_import |
||
3 | 3 |
|
4 | 4 |
import os.path |
5 | 5 |
import random |
6 |
- |
|
7 | 6 |
import string |
8 | 7 |
|
9 | 8 |
from django.core.files.storage import default_storage |
@@ -6,13 +6,11 @@ from datetime import datetime |
||
6 | 6 |
|
7 | 7 |
from django.conf import settings |
8 | 8 |
from django.core.files.storage import default_storage |
9 |
- |
|
10 | 9 |
from django.http import JsonResponse |
11 |
- |
|
12 | 10 |
from django.views import generic |
13 | 11 |
from django.views.decorators.csrf import csrf_exempt |
14 | 12 |
|
15 |
-from . import utils, image_processing |
|
13 |
+from . import image_processing, utils |
|
16 | 14 |
|
17 | 15 |
|
18 | 16 |
def get_upload_filename(upload_name): |
@@ -5,12 +5,12 @@ from django import forms |
||
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.core.exceptions import ImproperlyConfigured |
7 | 7 |
from django.core.serializers.json import DjangoJSONEncoder |
8 |
- |
|
9 | 8 |
from django.template.loader import render_to_string |
10 | 9 |
from django.utils.encoding import force_text |
11 |
-from django.utils.safestring import mark_safe |
|
12 |
-from django.utils.html import conditional_escape |
|
13 | 10 |
from django.utils.functional import Promise |
11 |
+from django.utils.html import conditional_escape |
|
12 |
+from django.utils.safestring import mark_safe |
|
13 |
+ |
|
14 | 14 |
|
15 | 15 |
try: |
16 | 16 |
# Django >=2.1 |
@@ -2,17 +2,6 @@ |
||
2 | 2 |
|
3 | 3 |
from StatusCode import BaseStatusCode, StatusCodeField |
4 | 4 |
|
5 |
-class UserStatusCode(BaseStatusCode): |
|
6 |
- USER_NOT_FOUND = StatusCodeField(400001, 'User Not Found', description=u'用户不存在') |
|
7 |
- |
|
8 |
-class KOLStatusCode(BaseStatusCode): |
|
9 |
- KOL_NOT_FOUND = StatusCodeField(400001, 'KOL Not Found', description=u'KOL不存在') |
|
10 |
- |
|
11 |
-class PackStatusCode(BaseStatusCode): |
|
12 |
- PACK_NOT_FOUND = StatusCodeField(100001, 'Pack Not Found', description=u'包不存在') |
|
13 |
- |
|
14 |
-class PackGoodsStatusCode(BaseStatusCode): |
|
15 |
- PACK_GOODS_NOT_FOUND = StatusCodeField(100001, 'Pack Goods Not Found', description=u'包商品不存在') |
|
16 | 5 |
|
17 | 6 |
class ParamStatusCode(BaseStatusCode): |
18 | 7 |
""" 4000xx 参数相关错误码 """ |
@@ -31,6 +20,22 @@ class PhoneStatusCode(BaseStatusCode): |
||
31 | 20 |
PHONE_ALREADY_EXISTS = StatusCodeField(400202, 'Phone Already Exists', description=u'手机号已存在') |
32 | 21 |
|
33 | 22 |
|
23 |
+class UserStatusCode(BaseStatusCode): |
|
24 |
+ USER_NOT_FOUND = StatusCodeField(400301, 'User Not Found', description=u'用户不存在') |
|
25 |
+ |
|
26 |
+ |
|
27 |
+class KOLStatusCode(BaseStatusCode): |
|
28 |
+ KOL_NOT_FOUND = StatusCodeField(401001, 'KOL Not Found', description=u'KOL不存在') |
|
29 |
+ |
|
30 |
+ |
|
31 |
+class PackStatusCode(BaseStatusCode): |
|
32 |
+ PACK_NOT_FOUND = StatusCodeField(402001, 'Pack Not Found', description=u'包不存在') |
|
33 |
+ |
|
34 |
+ |
|
35 |
+class PackGoodsStatusCode(BaseStatusCode): |
|
36 |
+ PACK_GOODS_NOT_FOUND = StatusCodeField(403001, 'Pack Goods Not Found', description=u'包商品不存在') |
|
37 |
+ |
|
38 |
+ |
|
34 | 39 |
class OrderStatusCode(BaseStatusCode): |
35 | 40 |
""" 4040xx 订单/支付相关错误码 """ |
36 | 41 |
UNIFIED_ORDER_FAIL = StatusCodeField(404000, 'Unified Order Fail', description=u'统一下单失败') |